package in.controller.adapter;
import android.content.Context;
import android.widget.AdapterView.OnItemLongClickListener;
import in.controller.adapter.base.RobinAdapter;
import in.lib.manager.SettingsManager;
import in.lib.manager.UserManager;
import in.model.Post;
import in.view.delegate.PostCollapsedDelegate;
import in.view.delegate.PostDelegate;
import in.view.delegate.PostMentionDelegate;
public class PostAdapter extends RobinAdapter<Post> implements OnItemLongClickListener
{
private static final int TYPE_POST = 0;
private static final int TYPE_MENTION = 1;
private static final int TYPE_COLLAPSED = 2;
private String userId = "-1";
public PostAdapter(Context context)
{
this(context, UserManager.getInstance().getUser().getId());
}
/**
* @param context
* @param userId The user ID for the current adapter set. Defaults to the current logged in
* user.
*/
public PostAdapter(Context context, String userId)
{
super(context);
this.userId = userId;
getItemTypes().put(TYPE_POST, new PostDelegate(this));
getItemTypes().put(TYPE_MENTION, new PostMentionDelegate(this));
getItemTypes().put(TYPE_COLLAPSED, new PostCollapsedDelegate(this));
}
@Override public int getItemViewType(int position)
{
Post item = getItem(position);
if (SettingsManager.getInstance().getCollapsedThreadIds().contains(item.getThreadId()))
{
return TYPE_COLLAPSED;
}
else if (item.isMention(userId))
{
return TYPE_MENTION;
}
return TYPE_POST;
}
}